package java学习.第18章_JDK8_17新特性;

import org.junit.Test;

/**
 * ClassName: JDK12
 * Package: java学习.第18章_JDK8_17新特性
 * Description:
 *
 * @Author 张蛟龙
 * @Create 2023/4/29 21:16
 * @Version 1.0
 */
public class JDK12_14switch新特性 {
    /**
     * JDK12 - 14
     * JDK14正式转正
     *   传统switch弊端
     *   1.匹配自上而下，且如果忘记写 break 后面的case无论匹配与否都会执行
     *   2.所有case语句共用一块范围，变量名不能重复
     *   3.不能再case里写多个执行结果一致条件
     *   4.整个switch不能有返回值
     *
     */
    @Test
    public void switch新特性之箭头(){

        int i = (int) (Math.random()*10);

        // 有  ->  可以不用写break了  执行完直接结束，不再往后执行
        switch (i){
            case 5 -> {
                System.out.println("我是中间");
            }
            case 6 -> {
                System.out.println("我及格了");
            }
            case 9,10 -> {
                System.out.println("我优秀了");
            }
            case 7,8 -> {
                System.out.println("我良好了");
            }
            default -> {
                System.out.println("我废物");
            }
        }

    }
    @Test //JDK13
    public void switch新特性之返回值(){
        int i = (int) (Math.random()*10);
        // 有  ->  可以不用写break了
        String s = switch (i){
            case 5 -> {
                System.out.println(i);
                yield "不及格";
            }
            case 6 -> {
                System.out.println(i);
                yield "及格";
            }
            case 9,10 -> {
                System.out.println(i);
                yield "优秀";
            }
            case 7,8 -> {
                System.out.println(i);
                yield "我良好了";
            }
            default -> {
                System.out.println(i);
                yield "废物";
            }
        };

        System.out.println(s);

    }

}
